package com.zzs.covid19_view.common.utils;

import lombok.extern.slf4j.Slf4j;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 文件名: JsoupUtil
 * 创建者: zzs
 * 创建时间: 2021/8/11 11:37
 * 描述: jsoup工具类,   jsoup 是一款Java 的HTML解析器，可直接解析某个URL地址、HTML文本内容。
 * 它提供了一套非常省力的API，可通过DOM，CSS以及类似于jQuery的操作方法来取出和操作数据
 */
@Slf4j
public class JsoupUtil {

    public static Document page;

    /**
     * 正则匹配获取数据
     *
     * @param regex
     * @param attributeKey
     * @param attributeValue
     * @return
     */
    public static String getInformation(String regex, String attributeKey, String attributeValue) {
        String result = null;
        //表达式对象
        Pattern p = Pattern.compile(regex);
        //创建Matcher对象
        Elements timelineService = page.getElementsByAttributeValue(attributeKey, attributeValue);
        Matcher m = p.matcher(timelineService.toString());
        if (m.find()) {  //该方法扫描输入的序列，查找与该模式匹配的一个子序列
            result = m.group();
        }
        return result;
    }

    /**
     * 通过Jsoup获取整个html页面
     * @param url
     */
    public static void getPageByJSoup(String url) {
        try {
            page = Jsoup.connect(url).get();
            log.info("获取到页面:{}",page);
        } catch (IOException e) {
            log.error("jsoup获取页面失败");
        }
    }
}
